///*******************************************************************************
// * Copyright (c) 2005, 2006 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// * IBM Corporation - initial API and implementation
// *******************************************************************************/
//package org.eclipse.ui.tests.dynamicplugins;
//
//import org.eclipse.core.commands.Command;
//import org.eclipse.core.commands.ExecutionEvent;
//import org.eclipse.core.commands.ExecutionException;
//import org.eclipse.core.commands.NotHandledException;
//import org.eclipse.core.commands.common.NamedHandleObject;
//import org.eclipse.core.commands.common.NotDefinedException;
//import org.eclipse.jface.bindings.Binding;
//import org.eclipse.jface.bindings.TriggerSequence;
//import org.eclipse.jface.bindings.keys.KeySequence;
//import org.eclipse.jface.bindings.keys.ParseException;
//import org.eclipse.jface.contexts.IContextIds;
//import org.eclipse.ui.commands.ICommandService;
//import org.eclipse.ui.contexts.IContextService;
//import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
//import org.eclipse.ui.keys.IBindingService;
//
///**
// * Tests whether the "org.eclipse.ui.commands" extension point can be added and
// * removed dynamically.
// *
// * @since 3.1.1
// */
//public final class CommandsExtensionDynamicTest extends DynamicTestCase {
//
// /**
// * Constructs a new instance of <code>CommandsExtensionDynamicTest</code>.
// *
// * @param testName
// * The name of the test; may be <code>null</code>.
// */
// public CommandsExtensionDynamicTest(final String testName) {
// super(testName);
// }
//
// /**
// * Returns the full-qualified identifier of the extension to be tested.
// *
// * @return The extension identifier; never <code>null</code>.
// */
// protected final String getExtensionId() {
// return "commandsExtensionDynamicTest.testDynamicCommandAddition";
// }
//
// /**
// * Returns the unqualified identifier of the extension point to be tested.
// *
// * @return The extension point identifier; never <code>null</code>.
// */
// protected final String getExtensionPoint() {
// return IWorkbenchRegistryConstants.PL_COMMANDS;
// }
//
// /**
// * Returns the relative location of the folder on disk containing the
// * plugin.xml file.
// *
// * @return The relative install location; never <code>null</code>.
// */
// protected final String getInstallLocation() {
// return "data/org.eclipse.commandsExtensionDynamicTest";
// }
//
// /**
// * Tests whether the items defined in the extension point can be added and
// * removed dynamically. It tests that the data doesn't exist, and then loads
// * the extension. It tests that the data then exists, and unloads the
// * extension. It tests that the data then doesn't exist.
// *
// * @throws ParseException
// * If "M1+W" can't be parsed by the extension point.
// */
// public final void testCommands() throws ParseException {
// final IBindingService bindingService = (IBindingService) getWorkbench()
// .getAdapter(IBindingService.class);
// final ICommandService commandService = (ICommandService) getWorkbench()
// .getAdapter(ICommandService.class);
// final IContextService contextService = (IContextService) getWorkbench()
// .getAdapter(IContextService.class);
// final TriggerSequence triggerSequence = KeySequence.getInstance("M1+W");
// NamedHandleObject namedHandleObject;
// Binding[] bindings;
// Command command;
// boolean found;
//
// assertTrue(!"monkey".equals(bindingService.getActiveScheme().getId()));
// found = false;
// bindings = bindingService.getBindings();
// if (bindings != null) {
// for (int i = 0; i < bindings.length; i++) {
// final Binding binding = bindings[i];
// if ("monkey".equals(binding.getSchemeId())
// && IContextIds.CONTEXT_ID_WINDOW.equals(binding
// .getContextId())
// && "monkey".equals(binding.getParameterizedCommand()
// .getId()) && binding.getPlatform() == null
// && binding.getLocale() == null
// && binding.getType() == Binding.SYSTEM
// && triggerSequence.equals(binding.getTriggerSequence())) {
// found = true;
//
// }
// }
// }
// assertTrue(!found);
// namedHandleObject = bindingService.getScheme("monkey");
// try {
// namedHandleObject.getName();
// fail();
// } catch (final NotDefinedException e) {
// assertTrue(true);
// }
// namedHandleObject = commandService.getCategory("monkey");
// try {
// namedHandleObject.getName();
// fail();
// } catch (final NotDefinedException e) {
// assertTrue(true);
// }
// command = commandService.getCommand("monkey");
// try {
// command.execute(new ExecutionEvent());
// fail();
// } catch (final ExecutionException e) {
// fail();
// } catch (final NotHandledException e) {
// assertTrue(true);
// }
// try {
// command.getName();
// fail();
// } catch (final NotDefinedException e) {
// assertTrue(true);
// }
// namedHandleObject = contextService.getContext("context");
// try {
// namedHandleObject.getName();
// fail();
// } catch (final NotDefinedException e) {
// assertTrue(true);
// }
// namedHandleObject = contextService.getContext("scope");
// try {
// namedHandleObject.getName();
// fail();
// } catch (final NotDefinedException e) {
// assertTrue(true);
// }
//
// getBundle();
//
// assertTrue("monkey".equals(bindingService.getActiveScheme().getId()));
// found = false;
// bindings = bindingService.getBindings();
// if (bindings != null) {
// for (int i = 0; i < bindings.length; i++) {
// final Binding binding = bindings[i];
// if ("monkey".equals(binding.getSchemeId())
// && IContextIds.CONTEXT_ID_WINDOW.equals(binding
// .getContextId())
// && "monkey".equals(binding.getParameterizedCommand()
// .getId()) && binding.getPlatform() == null
// && binding.getLocale() == null
// && binding.getType() == Binding.SYSTEM
// && triggerSequence.equals(binding.getTriggerSequence())) {
// found = true;
//
// }
// }
// }
// assertTrue(found);
// namedHandleObject = bindingService.getScheme("monkey");
// try {
// assertTrue("Monkey".equals(namedHandleObject.getName()));
// } catch (final NotDefinedException e) {
// fail();
// }
// command = commandService.getCommand("monkey");
// try {
// command.execute(new ExecutionEvent());
// } catch (final ExecutionException e) {
// fail();
// } catch (final NotHandledException e) {
// fail();
// }
// try {
// assertEquals("Monkey", command.getName());
// } catch (final NotDefinedException e) {
// fail();
// }
// namedHandleObject = commandService.getCommand("monkey");
// try {
// assertTrue("Monkey".equals(namedHandleObject.getName()));
// } catch (final NotDefinedException e) {
// fail();
// }
// namedHandleObject = contextService.getContext("context");
// try {
// assertTrue("Monkey".equals(namedHandleObject.getName()));
// } catch (final NotDefinedException e) {
// fail();
// }
// namedHandleObject = contextService.getContext("scope");
// try {
// assertTrue("Monkey".equals(namedHandleObject.getName()));
// } catch (final NotDefinedException e) {
// fail();
// }
//
// removeBundle();
//
// assertTrue(!"monkey".equals(bindingService.getActiveScheme().getId()));
// found = false;
// bindings = bindingService.getBindings();
// if (bindings != null) {
// for (int i = 0; i < bindings.length; i++) {
// final Binding binding = bindings[i];
// if ("monkey".equals(binding.getSchemeId())
// && IContextIds.CONTEXT_ID_WINDOW.equals(binding
// .getContextId())
// && "monkey".equals(binding.getParameterizedCommand()
// .getId()) && binding.getPlatform() == null
// && binding.getLocale() == null
// && binding.getType() == Binding.SYSTEM
// && triggerSequence.equals(binding.getTriggerSequence())) {
// found = true;
//
// }
// }
// }
// assertTrue(!found);
// namedHandleObject = bindingService.getScheme("monkey");
// try {
// namedHandleObject.getName();
// fail();
// } catch (final NotDefinedException e) {
// assertTrue(true);
// }
// namedHandleObject = commandService.getCategory("monkey");
// try {
// namedHandleObject.getName();
// fail();
// } catch (final NotDefinedException e) {
// assertTrue(true);
// }
// command = commandService.getCommand("monkey");
// try {
// command.execute(new ExecutionEvent());
// fail();
// } catch (final ExecutionException e) {
// fail();
// } catch (final NotHandledException e) {
// assertTrue(true);
// }
// try {
// command.getName();
// fail();
// } catch (final NotDefinedException e) {
// assertTrue(true);
// }
// namedHandleObject = contextService.getContext("context");
// try {
// namedHandleObject.getName();
// fail();
// } catch (final NotDefinedException e) {
// assertTrue(true);
// }
// namedHandleObject = contextService.getContext("scope");
// try {
// namedHandleObject.getName();
// fail();
// } catch (final NotDefinedException e) {
// assertTrue(true);
// }
// }
//}